package com.xiaoshuidi.cloud.module.bpm.dal.dataobject.swo;


import com.xiaoshuidi.cloud.framework.mybatis.core.dataobject.BaseDO;
import com.xiaoshuidi.cloud.framework.tenant.core.db.TenantBaseDO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.*;
import com.baomidou.mybatisplus.annotation.*;
import lombok.experimental.Accessors;


/**
 * wo 服务工单申请 DO
 *
 * @author 芋道源码
 */
@TableName("bpm_swo_ticket")
@KeySequence("bpm_swo_ticket_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class SwoTicketDO extends TenantBaseDO {

    /**
     * 服务工单主键
     */
    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     * 申请人的用户编号
     */
    private Long userId;
    /**
     * 维修区域：1：公共区域；2：房屋内部
     */
    private Integer maintenanceFlag;
    /**
     * 租客房间
     */
    private Long roomId;
    /**
     * 房间全名
     */
    private String roomFullName;
    /**
     * 门店id
     */
    private Long apartmentId;
    /**
     * 租客姓名
     */
    private String customerName;
    /**
     * 租客手机
     */
    private String customerMobile;
    /**
     * 上门联系电话
     */
    private String toDoorMobile;
    /**
     * 工单来源；1：租客 2：内部；
     */
    private Integer source;
    /**
     * 是否有偿维修：0：免费；1：收费
     */
    private Boolean needPay;
    /**
     * 累计账单金额
     */
    private BigDecimal amountOfRepairs;
    /**
     * 服务类别：1: 维修；2：保洁; 3: 其他; 4: 投诉;
     */
    private Integer serviceType;
    /**
     * 理级别：1：一般；2：紧急
     */
    private Integer level;
    /**
     * 服务日期
     */
    private LocalDateTime serviceTimeStart;
    /**
     * 服务日期
     */
    private LocalDateTime serviceTimeEnd;
    /**
     * 服务日期
     */
    private LocalDate serviceTobeCompleted;
    /**
     * 责任方：1：租客；2：第三方；3：公司
     */
    private Integer responsibleParty;
    /**
     * 联系电话
     */
    private String contactMobile;
    /**
     * 联系姓名
     */
    private String contactName;
    /**
     * 服务主题
     */
    private String topic;
    /**
     * 服务内容
     */
    private String content;
    /**
     * 附件
     */
    private String attachments;

    /**
     * 管家附件
     */
    private String butlerAttachments;
    /**
     * 状态：0：待指派；1：进行中 2: 已完成
     */
    private Integer status;
    /**
     * 指派分配人
     */
    private Long assignee;
    /**
     * 状态：0：待处理；1：处理中；2：已处理；3：不予处理
     */
    private Integer processStatus;
    /**
     * 完成时间
     */
    private LocalDateTime completeTime;
    /**
     * 是否已评价
     */
    private Boolean evaluatedOrNot;
    /**
     * 服务评分
     */
    private Integer rating;
    /**
     * 服务评价
     */
    private String comments;

    /**
     * 工单编号
     */
    private String woNumber;

    /**
     * 是否已受理
     */
    private Boolean isAcceptance;

    /**
     * 受理图片链接
     */
    private String acceptancePicture;

    /**
     * 受理备注
     */
    private String acceptanceRemark;

    /**
     * 维修后图片链接
     */
    private String finishPicture;

    /**
     * 维修后备注
     */
    private String finishRemark;

    /**
     * 维修类型
     */
    private Integer repairType;

    /**
     * 实际受理时间
     */
    private LocalDateTime actualProcessingTime;

    private Long deptId;

    /**
     * 工单来源 1:PC 2:租客
     */
    private String ticketFrom;

    /**
     * 关单时间
     */
    private LocalDateTime shutdownTime;

    /**
     * 要求完工时间
     */
    private LocalDateTime requiredCompletionTime;

}
